// 导入创建仓库模块
import { createSlice } from "@reduxjs/toolkit";
// 导入推断仓库类型 1.导入ts
import type { RootState } from "./index";

// 这里是改模块的state的类型 1.接口
interface systemState {
  count: number;
}
// 这里是改模块的state的类型 2.实例
const initialState: systemState = {
  count: 10,
};

// 实例模块
const systemSlice = createSlice({
  //模块命名
  name: "systemSlice",
  //初始值 // 3.使用
  initialState: initialState,
  //方法
  reducers: {
    // 状态加1
    add(state) {
      state.count++;
    },
    reduce(state) {
      state.count--;
    },
  },
});

export const { add, reduce } = systemSlice.actions;

// 导入推断仓库类型 2.使用ts
// 方便使用者去使用state
export const selectCount = (state: RootState) => state.system.count;
export default systemSlice.reducer;
